home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 11 / Mac Magazin and MacEasy Magazine CD - Issue 11.iso / Sharewarebibliothek / Entwickler / WASTE 1.1 C / WELongCoords.c < prev    next >
Text File  |  1994-10-31  |  2KB  |  69 lines

  1. /*
  2.  *    LongCoords.c
  3.  *
  4.  *    WASTE PROJECT
  5.  *    Long Coordinates
  6.  *
  7.  *    Copyright (c) 1993-1994 Marco Piovanelli
  8.  *    All Rights Reserved
  9.  *
  10.  */
  11.  
  12. #include <Types.h>
  13. #include "WASTEIntf.h"
  14.  
  15. enum {
  16.     kQDMin = -32767L,
  17.     kQDMax = +32767L
  18. };
  19.  
  20. pascal long _WEPinInRange(long value, long rangeStart, long rangeEnd)
  21. {
  22.     return ((value > rangeEnd) ? rangeEnd : ((value < rangeStart) ? rangeStart : value));
  23. }
  24.  
  25. pascal void WELongPointToPoint(const LongPt *lp, Point *p)
  26. {
  27.     p->v = (short) _WEPinInRange(lp->v, kQDMin, kQDMax);
  28.     p->h = (short) _WEPinInRange(lp->h, kQDMin, kQDMax);
  29. }
  30.  
  31. pascal void WEPointToLongPoint(Point p, LongPt *lp)
  32. {
  33.     lp->v = (long) p.v;
  34.     lp->h = (long) p.h;
  35. }
  36.  
  37. pascal void WESetLongRect(LongRect *lr, long left, long top, long right, long bottom)
  38. {
  39.     lr->top = top;
  40.     lr->left = left;
  41.     lr->bottom = bottom;
  42.     lr->right = right;
  43. }
  44.  
  45. pascal void WELongRectToRect(const LongRect *lr, Rect *r)
  46. {
  47.     WELongPointToPoint((const LongPt *) lr, (Point *) r);
  48.     WELongPointToPoint((const LongPt *) lr + 1, (Point *) r + 1);
  49. }
  50.  
  51. pascal void WERectToLongRect(const Rect *r, LongRect *lr)
  52. {
  53.     WEPointToLongPoint(*((const Point *) r), (LongPt *) lr);
  54.     WEPointToLongPoint(*((const Point *) r + 1), (LongPt *) lr + 1);
  55. }
  56.  
  57. pascal void WEOffsetLongRect(LongRect *lr, long hOffset, long vOffset)
  58. {
  59.     lr->top += vOffset;
  60.     lr->left += hOffset;
  61.     lr->bottom += vOffset;
  62.     lr->right += hOffset;
  63. }
  64.  
  65. pascal Boolean WELongPointInLongRect(const LongPt *lp, const LongRect *lr)
  66. {
  67.     return ((lp->v >= lr->top) && (lp->h >= lr->left) && (lp->v < lr->bottom) && (lp->h < lr->right));
  68. }
  69.